首页 / 技术类 / 设计 / 如何写 执行耗时任务的、可随时立即退出的函数 呢?

如何写 执行耗时任务的、可随时立即退出的函数 呢?

2011-05-26 00:36:00

如题。

稍微解释下,因为有可能有人会误会:放新线程里面去不就可以了?这没有解决问题。如此的话,你那个线程函数怎么写?或者线程函数里调用的某个任务函数怎么写?总之,多线程虽然总是出现在这些问题的解决方案中,但不是多线程解决了这个问题。嗯……不知道说清楚了没?

目前我心里的答案只有这一种模式:

 1bool DoTask(HANDLE hQuitSignal)
 2{
 3    while (!QuitCondition)
 4    {
 5        if (WaitForSingleObject(hQuitSignal, 0) == WAIT_OBJECT_0)
 6        {
 7            return false;
 8        }
 9
10        // Do something
11    }
12
13    return true;
14}

其中,“// Do something”部分要细化到瞬间执行完成的细度。

但是我很困惑的是,如果这些任务很繁重,难道我必须每进行一些操作就 if (WaitForSingleObject(hQuitSignal, 0) == WAIT_OBJECT_0) 检查下吗?这样岂不是这种检测代码充斥在任务中了?

不知各位有何经验和体会,求教~


首发:http://www.cppblog.com/Streamlet/archive/2011/05/26/147133.html



NoteIsSite/0.4